1. Field of the Invention
The present invention is related to virtual private servers, and more particularly, to caching of common files of the Virtual Private Servers (VPSs).
2. Related Art
With the popularity and success of the Internet, server technologies are of great commercial importance today. An individual server application typically executes on a single physical host computer, servicing client requests. However, providing a unique physical host for each server application is expensive and inefficient.
For example, commercial hosting services are often provided by an Internet Service Provider (ISP), which generally provides a separate physical host computer for each customer on which to execute a server application. However, a customer purchasing hosting services will often neither require nor be amenable to paying for use of an entire host computer. In general, an individual customer only requires a fraction of the processing power, storage, and other resources of a host computer.
Accordingly, hosting multiple server applications on a single physical computer is desirable. In effect, each server application needs to be a container—an isolated Virtual Private Server (VPS), simulating a server application executing on a dedicated physical host computer. Such functionality is unavailable on conventional server technology because, rather than comprising a single discrete process, a virtual private server must include a plurality of seemingly unrelated processes. Each container process performs various elements of the functionality required by the customer and each process uses its own files located in an isolated private area of a container (VPS).
Thus, another difficulty in implementing multiple VPSs within a single physical host involves providing each VPS (container) with a separate file system. A file system is an organized accumulation of data within one or more physical storage devices, such as a hard disk drive or RAID (redundant array of inexpensive disks).
The data is typically organized into “files”, such as word processing documents, spreadsheets, executable programs, and the like. The files are stored within a plurality of “storage units” of the storage device, sometimes referred to as “disk blocks” or “allocation units.”
Unfortunately, providing a separate physical device for storing the file system of each virtual private server would be expensive and inefficient. Thus, each VPS (container) has its own private area for storing files used by the VPS. However, when a number of identical VPSs (containers) are implemented on a physical host, the VPSs have identical sets of files used for supporting an operation of the VPS.
While sharing of files between among VPSs does not present a problem, providing the containers with an effective method for making different coincident files shared is problematic.
Accordingly, there is a need for an efficient and effective method for referencing and using common VPS (container) files.